﻿#pragma once
// 4阶B树
constexpr unsigned int MAX_NUM = 4;

// 元素数量
constexpr unsigned int ELEMENT_NUM = MAX_NUM - 1;

//结点的最小关键字数量 
constexpr int MINIMUM_NUMBER_OF_ELEMENTS = MAX_NUM / 2 - 1;

// 中间节点
const unsigned int MIDDLE_INDEX = ELEMENT_NUM / 2;

// 孩子数量
constexpr unsigned int CHILD_NUM = MAX_NUM;

/// <summary>
/// B树 结构 
/// </summary>
struct BStruct
{
	// 叶子节点
	bool leaf;

	// 当前节点key的数量
	unsigned int keyNum;

	// 元素的数据
	int keyData[ELEMENT_NUM];

	BStruct* childPtr[CHILD_NUM];

};


/// <summary>
/// 查找结果
/// </summary>
struct FindResult
{
	// 当前key位置
	unsigned int pos;

	// 分支位置
	unsigned int branchPos;

	BStruct* parent;

	BStruct* node;
};
